Skip to content

Conversation

@hyotatoFrappuccino
Copy link
Collaborator

Resolved Issue

PR Description

  • 지원서에서 기등록된 문서를 연결할 수 있는 기능을 추가하였습니다.
  • API 요청 예시
get - http://localhost:8080/api/v1/application-forms
지원서에 어떤 문서가 등록되어 있는지 확인하는 API
{
    "code": "2000",
    "message": "요청이 성공적으로 처리되었습니다.",
    "details": null,
    "data": {
        "applicationForms": [
            {
                "id": 2,
                "companyName": "네이버",
                "...": "..."
                "schedules": [
                    {
                        "id": 2,
                        "...": "..."
                    }
                ],
                "documents": [
                    {
                        "id": 2,
                        "type": "RESUME",
                        "title": "이력서.pdf"
                    }
                ]
            },
            {
                "id": 3,
                "companyName": "카카오",
                "...": "..."
                "schedules": [
                    {
                        "id": 3,
                        "...": "..."
                    }
                ],
                "documents": [
                    {
                        "id": 2,
                        "type": "RESUME",
                        "title": "이력서.pdf"
                    }
                ]
            }
        ]
    }
}

get - http://localhost:8080/api/v1/documents
문서가 어느 지원서에 등록되어 있는지 확인하는 API
{
    "code": "2000",
    "message": "요청이 성공적으로 처리되었습니다.",
    "details": null,
    "data": {
        "documents": [
            {
                "id": 2,
                "type": "RESUME",
                "title": "이력서.pdf",
                "lastModifiedDate": "2025-08-27",
                "applicationForms": [
                    {
                        "id": 2,
                        "companyName": "네이버",
                        "companyAddress": "경기 성남시 분당구",
                        "status": "PLANNED"
                    },
                    {
                        "id": 3,
                        "companyName": "카카오",
                        "companyAddress": "경기 성남시 분당구",
                        "status": "PLANNED"
                    }
                ]
            }
        ]
    }
}
  • 지원서(ApplicationForm)와 문서(Document) 양방향에서 모두 조회가 가능하여야 하기때문에 ManyToMany 구성이 필요하였고, 맵핑 엔티티를 생성하였습니다.(ApplicationFormDocument)
  • DTO 반환 시 ApplicationFormSimpleResponse, DocumentSimpleResponse를 사용하여 순환 참조를 방지하였고, ApplicationFormDocumentService를 별도로 생성하여 관련 작업을 위임하였습니다.
  • 지원서 CRUD시 연결 문서가 같이 포함되어 동작하도록 구성하였습니다. (이전의 지원서-일정 간 로직과 유사)

Others

  • 추후 리팩토링 : ApplicationFormDocumentService에서 getSimpleResponsesByApplicationFormId와 getSimpleResponsesGroupedByApplicationFormIds은 어느정도 코드를 공유하고, 또한 그룹핑해서 반환하는 코드도 편의를 위해 다른 서비스 계층에서 List.of(formId) 식으로 넘겨주는 것도 많은 상태입니다.
    추후 일관성있게 코드를 개편할 필요가 있습니다.

Copy link
Collaborator

@gnsdp99 gnsdp99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굉장히 복잡했겠네요.. 수고하셨습니다!

@hyotatoFrappuccino hyotatoFrappuccino merged commit 94dda05 into dev Aug 27, 2025
2 checks passed
@hyotatoFrappuccino hyotatoFrappuccino deleted the feat/#45 branch August 27, 2025 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 지원서-문서 연결 기능 구현

3 participants